% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode

% This file is a template using the "beamer" package to create slides for a talk or presentation
% - Talk at a conference/colloquium.
% - Talk length is about 20min.
% - Style is ornate.

% MODIFIED by Jonathan Kew, 2008-07-06
% The header comments and encoding in this file were modified for inclusion with TeXworks.
% The content is otherwise unchanged from the original distributed with the beamer package.

\documentclass{beamer}


% Copyright 2004 by Till Tantau <tantau@users.sourceforge.net>.
%
% In principle, this file can be redistributed and/or modified under
% the terms of the GNU Public License, version 2.
%
% However, this file is supposed to be a template to be modified
% for your own needs. For this reason, if you use this file as a
% template and not specifically distribute it as part of a another
% package/program, I grant the extra permission to freely copy and
% modify this file as you see fit and even to delete this copyright
% notice. 


\mode<presentation>
{
  \usetheme{Warsaw}
  % or ...

  \setbeamercovered{transparent}
  % or whatever (possibly just delete it)
}


\usepackage[english]{babel}
% or whatever

\usepackage[utf8]{inputenc}
% or whatever

\usepackage{times}
\usepackage[T1]{fontenc}
% Or whatever. Note that the encoding and the font should match. If T1
% does not look nice, try deleting the line with the fontenc.


\title[Introducing MEAN Stack] % (optional, use only with long paper titles)
{Introducing MEAN Stack}


\author[Zhilei Ren] % (optional, use only with lots of authors)
{Zhilei Ren}
% - Give the names in the same order as the appear in the paper.
% - Use the \inst{?} command only if the authors have different
%   affiliation.

% This is only inserted into the PDF information catalog. Can be left
% out. 



% If you have a file called "university-logo-filename.xxx", where xxx
% is a graphic format that can be processed by latex or pdflatex,
% resp., then you can add a logo as follows:

% \pgfdeclareimage[height=0.5cm]{university-logo}{university-logo-filename}
% \logo{\pgfuseimage{university-logo}}



% Delete this, if you do not want the table of contents to pop up at
% the beginning of each subsection:


% If you wish to uncover everything in a step-wise fashion, uncomment
% the following command: 

%\beamerdefaultoverlayspecification{<+->}


\begin{document}

\begin{frame}
  \titlepage
\end{frame}



% Structuring a talk is a difficult task and the following structure
% may not be suitable. Here are some rules that apply for this
% solution: 

% - Exactly two or three sections (other than the summary).
% - At *most* three subsections per section.
% - Talk about 30s to 2min per frame. So there should be between about
%   15 and 30 frames, all told.

% - A conference audience is likely to know very little of what you
%   are going to talk about. So *simplify*!
% - In a 20min talk, getting the main ideas across is hard
%   enough. Leave out details, even if it means being less precise than
%   you think necessary.
% - If you omit details that are vital to the proof/implementation,
%   just say so once. Everybody will be happy with that.


\begin{frame}
	\centering
		\includegraphics[width=0.6\textwidth]{mean.jpg}
\end{frame}
\begin{frame}
	\begin{block}{Prerequisites}
		Install mongodb, git, and node.js. Note that the node.js shipped with Linux distros may not be up-to-date.
	\end{block}
	\pause
	\begin{alertblock}{bash shell}
	\scriptsize
\$curl -sL https://deb.nodesource.com/setup\_4.x | sudo -E bash -

\$sudo apt-get install -y nodejs	

\$sudo apt-get install mongodb

\$sudo apt-get install libkrb5-dev \#for debian based distros

\$sudo apt-get install git

\end{alertblock}
\end{frame}

\begin{frame}
	\begin{block}{Configure git}
		The git:// protocol not available.
	\end{block}
	\pause
	\begin{alertblock}{bash shell}
	\scriptsize

	\$git config -\--global url.https://.insteadOf git://
\end{alertblock}
\end{frame}
\begin{frame}
	\begin{block}{Install mean-cli using npm}
		npm: node.js package manager
	\end{block}
	\pause
	\begin{alertblock}{bash shell}
	\scriptsize

	\$sudo npm -g install mean-cli
\end{alertblock}
\end{frame}
\begin{frame}
	\begin{block}{Init a mean project}
		Using the installed programs to generate the template, and solve the dependencies.
	\end{block}
	\pause
	\begin{alertblock}{bash shell}
	\scriptsize

	\$mean init <appname>

	\$cd <appname>

	\$npm install

	\$node server
\end{alertblock}
\end{frame}
\begin{frame}
	\begin{figure}
		\includegraphics[width=0.5\textwidth]{compiling.png}
		\caption{xkcd 303}
	\end{figure}
\end{frame}
\begin{frame}
	\begin{figure}
		\includegraphics[width=0.5\textwidth]{automation.png}
		\caption{xkcd 1319}
	\end{figure}
\end{frame}
\begin{frame}
	\begin{block}{Browse the generated template site}
		Visit http://localhost:3000 with your favorite browser.
	\end{block}
	\pause
	\begin{block}{Further reading}
		\scriptsize
		http://learnmean.com/

		http://codewithintent.com/mean-io-tutorial-building-goals-application-from-scratch-part-1/
	\end{block}
\end{frame}
\end{document}


